import { defineStore } from 'pinia'

// 注意命名建议使用 useXXX 格式
// export const useCounterStore1 = defineStore('counter', () => {
//   const count = ref(0)
//   const doubleCount = computed(() => count.value * 2)
//   function increment() {
//     count.value++
//   }

//   return { count, doubleCount, increment }
// })

/**
 * useCounterStore 的对象式风格更常用和推荐：
 * 可读性和维护性：对象式风格将状态、计算属性和方法明确分组，结构清晰，便于维护。
 * 扩展性：当逻辑复杂时，对象式风格更容易添加新的状态、计算属性或方法，且不会使代码变得混乱。
 * 社区惯例：大多数 Pinia（Vue 状态管理库）文档和示例代码都采用对象式风格，遵循社区惯例有助于团队协作和代码审查。
 */
export const useCounterStore = defineStore('counter', {
  state: () => ({
    count: 2
  }),
  getters: {
    doubleCount: (state) => state.count * 2
  },
  actions: {
    increment(newCount: number) {
      this.count = newCount
    }
  }
})
